package infra

import "time"

type HelmInfo struct {
	Name     string `json:"name" yaml:"name"`
	Version  string `json:"version" yaml:"version"`
	Describe string `json:"describe" yaml:"describe"`
	//RepoKey  string
	Detail interface{} `json:"detail" yaml:"detail"`
}

type ChartsIndex struct {
	ApiVersion string                 `json:"apiVersion" yaml:"apiVersion"`
	Entries    map[string][]ChartInfo `json:"entries" yaml:"entries"`
	Generated  time.Time              `json:"generated" yaml:"generated"`
	ServerInfo interface{}            `json:"serverInfo" yaml:"serverInfo"`
}

type ChartInfo struct {
	ApiVersion   string        `json:"apiVersion" yaml:"apiVersion"`
	AppVersion   string        `json:"appVersion" yaml:"appVersion"`
	Description  string        `json:"description" yaml:"description"`
	Digest       string        `json:"digest" yaml:"digest"`
	Name         string        `json:"name" yaml:"name"`
	Type         string        `json:"type" yaml:"type"`
	Urls         []string      `json:"urls" yaml:"urls"`
	Version      string        `json:"version" yaml:"version"`
	Dependencies []interface{} `json:"dependencies" yaml:"dependencies"`
	Created      time.Time     `json:"created" yaml:"created"`
	UnKnownField `json:",inline" yaml:",inline"`
}

type ChartInfoSimple struct {
	Description string `json:"description" yaml:"description"`
	Name        string `json:"name" yaml:"name"`
	Version     string `json:"version" yaml:"version"`
}

type UnKnownField map[string]interface{}

type ChartYaml struct {
	ApiVersion  string `json:"apiVersion" yaml:"apiVersion"`
	Name        string `json:"name" yaml:"name"`
	Description string `json:"description" yaml:"description"`
	Type        string `json:"type" yaml:"type"`
	Version     string `json:"version" yaml:"version"`
	AppVersion  string `json:"appVersion" yaml:"appVersion"`
}
